﻿using SportsPlatform.Dto.SportBusiness.Category;
using SportsPlatform.Base;
using SportsPlatform.Query.SportBusiness.Category;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace SportsPlatform.SportBusiness.ISportBusiness
{
    /// <summary>
    /// 资讯服务接口
    /// </summary>
    public interface ICategoryService
    {
        /// <summary>
        /// 查询资讯分类分页后的数据
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <returns></returns>
        Task<PagePagingDto<CategoryDto>> GetCategoryDto(GetCategoryQuery query);

        /// <summary>
        /// 开始新增资讯分类
        /// </summary>
        /// <param name="addCategoryQuery">传入参数</param>
        /// <returns></returns>
        Task<BaseResultDto> AddStart(AddCategoryQuery addCategoryQuery);

        /// <summary>
        /// 开始更新资讯分类
        /// </summary>
        /// <param name="updateCategory">传入更新参数</param>
        /// <returns></returns>
        Task<BaseResultDto> UpdateStart(UpdateCategoryQuery updateCategory);

        /// <summary>
        /// 开始删除资讯分类
        /// </summary>
        /// <param name="deleteCategoryQuery">传入参数</param>
        /// <returns></returns>
        Task<BaseResultDto> UpdateDeleteCategory(DeleteCategoryQuery deleteCategoryQuery);

        /// <summary>
        /// 更新状态
        /// </summary>
        /// <param name="updateSateQuery">传入参数</param>
        /// <returns></returns>
        Task<BaseResultDto> UpdateStateStart(UpdateCategorySateQuery updateSateQuery);

        /// <summary>
        /// 获取所有分类
        /// </summary>
        /// <returns></returns>
        Task<Base.ResultListDto<CategoryDto>> GetAll(Guid? Id, Guid? CompanyId);

        /// <summary>
        /// 获取该标识下的分类
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task<ResultDto<GetCategoryEditDto>> GetByCategoryId(Guid id);
    }
}
